Some more diagnostics when the build fails In case it helps us to diagnose why daemons are sometimes dying Bug: 146217083 Test: rm ../../out -rf; (OUT_DIR=../../out DIST_DIR=../../out/dist ./gradlew buildOnServer &); sleep 10; killall java; ls ../../out/dist/gradle-daemon/6.1 # and also notice that java processes were listed in stdout Change-Id: I8772de53bdb45aa51a2e7393f3054a98d8263acb
diff --git a/gradlew b/gradlew index 724283c..2729139 100755 --- a/gradlew +++ b/gradlew
@@ -215,10 +215,22 @@ TMPDIR_ARG="-Djava.io.tmpdir=$TMPDIR" fi +function tryToDiagnosePossibleDaemonFailure() { + # copy daemon logs + if [ -n "$GRADLE_USER_HOME" ]; then + if [ -n "$DIST_DIR" ]; then + cp -r "$GRADLE_USER_HOME/daemon" "$DIST_DIR/gradle-daemon" + # TODO (146217083): consider removing this after the Gradle daemons stop occasionally dying + echo "Current java processes: '$(ps -ef | grep java)'" + fi + fi +} + function runGradle() { if "$JAVACMD" "${JVM_OPTS[@]}" $TMPDIR_ARG -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain $HOME_SYSTEM_PROPERTY_ARGUMENT $TMPDIR_ARG "$XMX_ARG" "$@"; then return 0 else + tryToDiagnosePossibleDaemonFailure # Print AndroidX-specific help message if build fails # Have to do this build-failure detection in gradlew rather than in build.gradle # so that this message still prints even if buildSrc itself fails